//package com.moxi.mogublog.redis.service;
//
//import com.moxi.mogublog.redis.vo.RedisInfoVO;
//
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
///**
// * Jedis 工具接口
// *
// * @author JackLi
// * @date 2020-05-28 下午10:53
// */
//public interface IRedisServiceBak {
//
//    /**
//     * 获取 redis 的详细信息
//     *
//     * @return
//     */
//    public List<RedisInfoVO> getRedisInfo();
//
//    /**
//     * eval-使用 Lua 解释器执行脚本
//     *
//     * @param script 一段 Lua 5.1 脚本程序。脚本不必(也不应该)定义为一个 Lua 函数
//     * @param keys
//     * @param args
//     * @param <T>
//     * @return
//     */
//    public <T> Object eval(String script, List<String> keys, List<String> args);
//
//    // -------------------- 主要命令 [start] --------------------
//
//    /**
//     * ping-检测redis服务器是否能ping通
//     *
//     * @param <T>
//     * @return
//     */
//    public <T> String ping();
//
//    /**
//     * getKeysSize-获取 redis key 数量
//     *
//     * @return
//     */
//    public Map<String, Object> getKeysSize();
//
//    /**
//     * getMemoryInfo-获取 redis 内存信息
//     *
//     * @return
//     */
//    public Map<String, Object> getMemoryInfo();
//
//    /**
//     * getKeys-获取指定的 key
//     *
//     * @param pattern 正则表达式
//     * @return
//     */
//    public Set<String> getKeys(String pattern);
//
//    /**
//     * flushDB-删除db下的所有数据
//     *
//     * @param <T>
//     * @return
//     */
//    public <T> String flushDB();
//
//    /**
//     * flushAll-通杀全部库
//     *
//     * @param <T>
//     * @return
//     */
//    public <T> String flushAll();
//
//    /**
//     * 判断某个key是否存在
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> boolean exists(String key);
//
//    /**
//     * 查看key是什么类型
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> String type(String key);
//
//    /**
//     * ttl- 以秒为单位返回 (key) 的剩余过期时间
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Long ttl(String key);
//
//    /**
//     * pttl- 以毫秒为单位返回 (key) 的剩余过期时间
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Long pttl(String key);
//
//
//    /**
//     * expire-设置 (key) 的过期时间，(key) 过期后将不再可用。单位以秒计
//     *
//     * @param key
//     * @param seconds
//     * @param <T>
//     * @return
//     */
//    public <T> Long expire(String key, Integer seconds);
//
//    /**
//     * pExpire-设置 (key) 的过期时间，(key) 过期后将不再可用。单位以毫秒计
//     *
//     * @param key
//     * @param milliSeconds 以毫秒为单位
//     * @param <T>
//     * @return
//     */
//    public <T> Long pExpire(String key, Long milliSeconds);
//
//    // -------------------- 主要命令 [end] --------------------
//
//
//    // ---------- Redis数据类型1:字符串（String）：单值单value [start] ----------
//
//    /**
//     * set-设置指定 key 的值
//     *
//     * @param key
//     * @param value
//     * @param seconds
//     * @param <T>
//     * @return
//     */
//    public <T> String set(String key, T value, int seconds);
//
//    /**
//     * get-获取指定 key 的值
//     *
//     * @param key   key
//     * @param clazz
//     * @param <T>
//     * @return
//     */
//    public <T> T get(String key, Class<T> clazz);
//
//    /**
//     * strLen-返回 key 所储存的字符串值的长度
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Long strLen(String key);
//
//    /**
//     * del-删除指定 key(单个)
//     *
//     * @param key
//     * @return
//     */
//    public boolean del(String key);
//
//    /**
//     * del-删除指定 key(多个)
//     *
//     * @param keys
//     * @param <T>
//     * @return
//     */
//    public <T> Long del(Set<String> keys);
//
//    /**
//     * incr-自增1(前提：该值必须为数字)
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Long incr(String key);
//
//    /**
//     * decr-自减1(前提：该值必须为数字)
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Long decr(String key);
//
//    /**
//     * incrBy-将key所储存的值加上给定的增量值increment
//     *
//     * @param key
//     * @param increment
//     * @param <T>
//     * @return
//     */
//    public <T> Long incrBy(String key, Long increment);
//
//    /**
//     * decrBy-将key所储存的值减去给定的减量值increment
//     *
//     * @param key
//     * @param increment
//     * @param <T>
//     * @return
//     */
//    public <T> Long decrBy(String key, Long increment);
//
//    // ---------- Redis数据类型1:字符串（String）：单值单value [end] ----------
//
//
//    // ---------- Redis数据类型2:哈希（Hash）：KV模式不变，但V是一个键值对 [start] ----------
//
//    /**
//     * hSet-设置hash:将哈希表(key)中的字段field的值设置为value
//     *
//     * @param key
//     * @param field
//     * @param value
//     * @param seconds
//     * @param <T>
//     * @return
//     */
//    public <T> Boolean hSet(String key, String field, T value, int seconds);
//
//    /**
//     * hGet-获取hash的值:获取存储在哈希表(key)中指定字段field的值
//     *
//     * @param key
//     * @param field
//     * @param clazz
//     * @param <T>
//     * @return
//     */
//    public <T> T hGet(String key, String field, Class<T> clazz);
//
//    /**
//     * hmSet-批量设置hash:同时将多个field-value对设置到哈希表(prefix+key)中
//     *
//     * @param key
//     * @param values
//     * @param seconds
//     * @param <T>
//     * @return
//     */
//    public <T> String hmSet(String key, Map<String, Object> values, int seconds);
//
//    /**
//     * hmGet-批量获取hash的一个属性
//     *
//     * @param key
//     * @param field
//     * @param <T>
//     * @return
//     */
//    public <T> List<String> hmGet(String key, String field);
//
//    /**
//     * hmGet-批量获取hash的多个属性
//     *
//     * @param key
//     * @param fields
//     * @param <T>
//     * @return
//     */
//    public <T> List<String> hmGet(String key, Set<String> fields);
//
//    /**
//     * hGetAll-获取hash的所有属性
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Map<String, String> hGetAll(String key);
//
//    /**
//     * hDel-删除hash的单个属性
//     *
//     * @param key
//     * @param field
//     * @return
//     */
//    public <T> Long hDel(String key, String field);
//
//    /**
//     * hDel-删除hash的多个属性
//     *
//     * @param key
//     * @param fields
//     * @param <T>
//     * @return
//     */
//    public <T> Long hDel(String key, Set<T> fields);
//
//    /**
//     * hIncrBy-针对hash中某个属性增加指定的值
//     *
//     * @param key
//     * @param field
//     * @param value
//     * @param <T>
//     * @return
//     */
//    public <T> Long hIncrBy(String key, String field, long value);
//
//    /**
//     * hExists-hash是存在某属性
//     *
//     * @param key
//     * @param field
//     * @param <T>
//     * @return
//     */
//    public <T> Boolean hExists(String key, String field);
//
//    // ---------- Redis数据类型2:哈希（Hash）：KV模式不变，但V是一个键值对 [end] ----------
//
//
//    // ---------- Redis数据类型3:列表（List）：单值多value [start] ----------
//
//    /**
//     * lPush-将一个值 value 插入到列表 (key) 的表头,即从list左侧插入
//     *
//     * @param key
//     * @param value
//     * @param <T>
//     * @return
//     */
//    public <T> Long lPush(String key, T value);
//
//    /**
//     * lPush-将多个值 value 插入到列表 (key) 的表头,即从list左侧插入
//     *
//     * @param key
//     * @param values
//     * @param <T>
//     * @return
//     */
//    public <T> Long lPush(String key, List<T> values);
//
//    /**
//     * lPop-移除并返回列表 (key) 的头元素,即左侧第一个元素；当 key 不存在时，返回 nil
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> String lPop(String key);
//
//    /**
//     * rPush-将一个值 value 插入到列表 (key) 的表尾,即从list右侧插入
//     *
//     * @param key
//     * @param value
//     * @param <T>
//     * @return
//     */
//    public <T> Long rPush(String key, T value);
//
//    /**
//     * rPush-将多个值 value 插入到列表 (key) 的表尾,即从list右侧插入
//     *
//     * @param key
//     * @param values
//     * @param <T>
//     * @return
//     */
//    public <T> Long rPush(String key, List<T> values);
//
//    /**
//     * rPop-移除并返回列表 (key) 的尾元素,即右侧第一个元素；当 key 不存在时，返回 nil
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> String rPop(String key);
//
//    /**
//     * 获取 list 中的所有元素
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> List<String> lRange(String key);
//
//
//    // ---------- Redis数据类型3:列表（List）：单值多value [end] ----------
//
//    // ---------- Redis数据类型4:集合（Set）：单值多value [start] ----------
//
//    /**
//     * sAdd-向集合Set中添加一个元素
//     *
//     * @param key
//     * @param member
//     * @param <T>
//     * @return
//     */
//    public <T> Long sAdd(String key, T member);
//
//    /**
//     * sAdd-向集合Set中添加多个元素
//     *
//     * @param key
//     * @param members
//     * @param <T>
//     * @return
//     */
//    public <T> Long sAdd(String key, Set<T> members);
//
//    /**
//     * sMembers-返回集合Set中的所有元素
//     *
//     * @param key
//     * @param <T>
//     * @return
//     */
//    public <T> Set<String> sMembers(String key);
//
//    /**
//     * sIsMember-判断member元素是否是集合 (prefix+key) 的成员
//     *
//     * @param key
//     * @param member
//     * @param <T>
//     * @return
//     */
//    public <T> Boolean sIsMember(String key, T member);
//
//    // ---------- Redis数据类型4:集合（Set）：单值多value [end] ----------
//
//
//    // ---------- Redis数据类型5:有序集合zSet（sorted set） [start] ----------
//
//    /**
//     * zAdd-向zSet中的某个key添加一个属性几分数（可以根据分数排序）
//     *
//     * @param key
//     * @param score
//     * @param field
//     * @param <T>
//     * @return
//     */
//    public <T> Long zAdd(String key, double score, String field);
//
//    /**
//     * 给zSet中的某个key中的某个属性增加指定分数
//     *
//     * @param key
//     * @param score
//     * @param field
//     * @param <T>
//     * @return
//     */
//    public <T> Double zIncrBy(String key, double score, String field);
//
//    /**
//     * 删除指定前缀的key
//     *
//     * @param keyPrefix
//     */
//    void delByKeyPrefix(String keyPrefix);
//
//    /**
//     * 获取指定前缀的keys
//     *
//     * @param keyPrefix
//     * @return
//     */
//    Set<String> keys(String keyPrefix);
//
//    // ---------- Redis数据类型5:有序集合zSet（sorted set） [end] ----------
//
//}
